# encoding: utf-8
# @File  : get_dirver.py
# @Author: wu shaofan
# @Date  :  2024/06/18
# @Desc : app自动化驱动脚本
# 导入webdriver
from appium import webdriver

from utils.set_config import SetConfig


class UtilsDriver:
    driver = None

    def __init__(self):
        self.config = SetConfig()
        self.deviceName = self.config.get_config("caps", 'devicename')
        self.appPackage = self.config.get_config("caps", 'appPackage')
        self.appActivity = self.config.get_config("caps", 'appActivity')
        self.platformVersion = self.config.get_config("caps", 'platformVersion')

    # 获取驱动对象的方法
    def get_app_driver(self):
        # 判断驱动对象是否为空
        if self.driver is None:
            caps = {
                'automationName': 'UiAutomator2',
                'platformName': 'Android',
                'platformVersion': self.platformVersion,
                'deviceName': self.deviceName,
                'appPackage': self.appPackage,
                'appActivity': self.appActivity,
                'noReset': True
            }
            """
            'automationName': 自动化测试引擎，默认UiAutomator2
            'platformName': ,  # 平台名称（iOS或Android）
            'platformVersion': ,  # 平台版本号
            'deviceName': ,  # 设备名称
            'appPackage': ,  # app的包名
            'appActivity': ,  # 指定应用入口Activity(界面名)
            'noReset': True 用来记住app的session 
                        (如果有登录或做过初始化操作，为ture  后面不需要再操作)
            """

            # 创建驱动对象
            parm = 'http://127.0.0.1:4723/wd/hub'
            self.driver = webdriver.Remote(parm, caps)
            return self.driver

    # 退出驱动对象的方法
    def quit_app_driver(self):
        if self.driver:
            self.driver.quit()
            self.driver = None
